package com.xyh.order.controller;

import com.xyh.order.service.OrderService;
import com.xyh.pojo.Order;
import com.xyh.pojo.Product;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

/**
 * TODO
 *
 * @author 丁德成
 * @explain
 * @date 2023/5/12
 */
@RestController
@RequestMapping("/order")
public class OrderController {
    @Autowired
    private OrderService orderService;

    //该类默认没有交给spring容器管理
    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("save")
    public String save(Integer pid,Integer num){
        Order order = new Order();
        //用户信息--登录中获取
        order.setUid(1);
        order.setUsername("云天河");
        order.setNumber(num);

        //商品信息的设置: 远程调用商品微服务的接口。 基于Http协议进行远程调用。
        //两种基于http调用的方式: 第一种: 可以使用httclient工具jar 自己封装工具类
        //                    第二种方式: spring框架中提供了一个工具类。RestTemplate.

        Product product = restTemplate.getForObject("http://localhost:8080/product/getById/" + pid, Product.class);
        if(product==null){
            return "失败";
        }
        order.setPid(product.getPid());
        order.setPname(product.getPname());
        order.setPprice(product.getPprice());

        orderService.save(order);

        return "成功";
    }
}
